SharedObject.data

Доступность

Flash Player 6.

Синтаксис

myLocalSharedObject.data:Object

Описание

Свойство; набор аттрибутов свойства data объекта; эти аттрибуты могут совместно использоваться приложениями, работающими на одном компьютере, либо быть сохранены. Каждый аттрибут может быть объектом одного из базовых ActionScript типов — Array, Number, Boolean, и так далее. Например, следующий код сохраняет в SO самые разные величины:

var items_array:Array = new Array(101, 346, 483);
var currentUserIsAdmin:Boolean = true;
var currentUserName:String = "Ramona";

var my_so:SharedObject = SharedObject.getLocal("superfoo");
my_so.data.itemNumbers = items_array;
my_so.data.adminPrivileges = currentUserIsAdmin;
my_so.data.userName = currentUserName;

for (var prop in my_so.data) {
  trace(prop+": "+my_so.data[prop]);
}

Все аттрибуты свойства data сохраняются и объект будет содержать:

userName: Ramona
adminPrivileges: true
itemNumbers: 101,346,483

Замечание: не присваивайте значение свойству data shared object, подобно следующему: so.data = someValue; Flash проигнорирует это действие.

Для удаления содержимого SO используйте, например, оператор delete: delete so.data.attributeName; присваивание значения null или undefined аттрибуту shared object не удалит этот аттрибут.

Для создания private значений shared object — то есть значений, которые доступны только во время работы с данными и не сохраняются при закрытии плеера — создавайте свойства напрямую, а не как аттрибуты свойства data, как показано на примере ниже:

var my_so:SharedObject = SharedObject.getLocal("superfoo");
my_so.favoriteColor = "blue";
my_so.favoriteNightClub = "The Bluenote Tavern";
my_so.favoriteSong = "My World is Blue";

for (var prop in my_so) {
  trace(prop+": "+my_so[prop]);
}

SO содержит следующие данные:

favoriteSong: My World is Blue
favoriteNightClub: The Bluenote Tavern
favoriteColor: blue
data: [object Object]

Пример

В этом примере текст из компонента TextInput сохраняется в SO my_so (полный пример смотри в разделе SharedObject.getLocal()):

// Создаем листенер и обработчик события <enter>
var textListener:Object = new Object();
textListener.enter = function(eventObj:Object) {
  my_so.data.myTextSaved = eventObj.target.text;
  my_so.flush();
};